package com.ctshk.rpc.order.custom.dto.tourist;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel("定制团旅客名单DTO")
public class CustomOrderTouristNameListDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    private Long id;

    @ApiModelProperty(value = "订单ID")
    private Long orderId;

    // 旅客表 lock_status  1 锁定   2 未锁定
    @ApiModelProperty(value = "状态")
    private String lockStatus;

    // 旅客表 noShow    1  是  2 否
    @ApiModelProperty(value = "没有出现")
    private String noShow;

    @ApiModelProperty(value = "英文名")
    private String enFullname;

    @ApiModelProperty(value = "中文名")
    private String cnFullname;

    // 旅客表 1 游客 2 导游 3 领队
    @ApiModelProperty(value = "人员类型")
    private String peopleType;

    @ApiModelProperty(value = "旅客类型")
    private String touristTypeName;

    // 旅客表 1 待付款 2 待付余款 3 已付全款
    @ApiModelProperty(value = "收款状态")
    private String payStatus;

    @ApiModelProperty(value = "出生日期")
    private LocalDate birthday;

    // todo 待确认 旅客表 1 男  2 女
    @ApiModelProperty(value = "性别")
    private String gender;

    @ApiModelProperty(value = "国籍")
    private String nation;

    /*
     * 对应游客表中联系方式
     */
    @ApiModelProperty(value = "电话")
    private String mobile;

    @ApiModelProperty(value = "电子邮件")
    private String email;

    // 订单表
    @ApiModelProperty(value = "销售单号")
    private String orderNumber;

    // 1：CPM云平台，2 ：CPM代理下单，3 ：PC官网，4 ：安卓，5：IOS，6：H5
    @ApiModelProperty(value = "订单来源")
    private String orderSource;

    // todo 待确认 订单表或游客表create_id
    @ApiModelProperty(value = "所属销售")
    private Long createId;

    @ApiModelProperty(value = "销售名称")
    private String createUserName;

    @ApiModelProperty(value = "销售部门")
    private String createUserDept;

    // 游客表
    @ApiModelProperty(value = "证件类型1")
    private String certificateType;

    @ApiModelProperty(value = "证件编号1")
    private String certificateNumber;

    @ApiModelProperty(value = "证件有效期1")
    private LocalDate certificateValidDate;

    @ApiModelProperty(value = "证件类型2")
    private String certificateType2;

    @ApiModelProperty(value = "证件编号2")
    private String certificateNumber2;

    @ApiModelProperty(value = "证件有效期2")
    private LocalDate certificateValidDate2;

    @ApiModelProperty(value = "证件类型3")
    private String certificateType3;

    @ApiModelProperty(value = "证件编号3")
    private String certificateNumber3;

    @ApiModelProperty(value = "证件有效期3")
    private LocalDate certificateValidDate3;



    // 订单表
    @ApiModelProperty(value = "备注")
    private String internalRemark;

    // 数据库查询字段
    @ApiModelProperty(value = "签证办理")// 游客表 buy_visa字段 1 "托我司办理”；2 “旅客自理”
    // 返回前段数据
    private String buyVisa;

    // 数据库查询字段 签证表
    // 返回前段字段 1/未收齐   2/已收齐
    @ApiModelProperty(value = "证件收齐状态")
    private String collectionStatus;

    // 签证表提交时间
    private LocalDate submitTime;
    // 签证表提交运单号
    private String submitTrackingNumber;
    @ApiModelProperty(value = "提交后台时间/运单号")
    private String submitTimeAndNumber;

    // 补齐提交资料时间
    private LocalDate makeUpTime;
    // 补齐运单号
    private String makeUpTrackingNumber;
    @ApiModelProperty(value = "补齐资料时间/运单号")
    private String makeUpTimeNumber;

    @ApiModelProperty(value = "出签状态(1 出签成功 2 出签失败 3 待送签 4 待出签)")
    private String signOutStatus;

    @ApiModelProperty(value = "紧急联系人姓名")
    private String emergencyContactName;

    @ApiModelProperty(value = "紧急联系人电话区号")
    private String emergencyMobileAreaCode;

    @ApiModelProperty(value = "紧急联系人电话")
    private String emergencyMobile;

    @ApiModelProperty("证件文件路径列表")
    private List<String> certificatePathList;
}
